#ifndef _CESCENARIO_H
#define _CESCENARIO_H

#include "textura.h"
#include "recursos.h"
#include <stdio.h>

#define LARGO_BLOQUE 0.1


/*------------------------------------------------------------------------------
	Implements levels
------------------------------------------------------------------------------*/
class CEscenario
{	
	TEscenario		*m_pEscenario;
	CRecursos		*m_pRecursos;
	unsigned int	m_uiNumTexturas;
	int				m_iVistaIzq;
	int				m_iVistaDer;
	float			m_fX;
	float			m_fY;
	Bool			m_bTransparente;
	float   		m_aColor[3];
				
public:

	CEscenario();
	~CEscenario();
	void Liberar();
	void Iniciar(CRecursos *pRecursos);	
	void Dibujar();
	void DibujarTile(int iTextura);	
	void Actualizar();
	Bool Cargar(const char *szNombreArchivo);	
	Bool EsSuelo(int x,int y);
	int 	f2celdaX(float f);
	int 	f2celdaY(float f);
	float 	celda2fX(int celda);	
	float 	celda2fY(int celda);
	
	/*---------------------------------
	 set Functions
	---------------------------------*/
	void setX(float x);
	void setY(float y);
	inline void setTransparente(Bool bValor){m_bTransparente=bValor;}
	inline void setColor(float fR,float fG,float fB){m_aColor[0]=fR;m_aColor[1]=fB;m_aColor[2]=fG;}
	inline void setRecursos(CRecursos *pRecursos){m_pRecursos=pRecursos;}
	inline void setEscenario(TEscenario *pEscenario){m_pEscenario=pEscenario;}
	
	/*---------------------------------
	 get Funtions
	---------------------------------*/
	inline int getVistaIzq(){return m_iVistaIzq;}
	inline int getVistaDer(){return m_iVistaDer;}
	int getCelda(int x,int y);
	inline float getX(){return m_fX;}
	inline float getY(){return m_fY;}
	inline int   getLargo(){return m_pEscenario->m_uiLargo;}
	inline char  *getDirBase(){return m_pEscenario->m_sDirBase;}
	inline char  *getNombre(){return m_pEscenario->m_sNombre;}
};

#endif
